Giter Site home page Giter Site logo

asifpy / django-crudbuilder Goto Github PK

View Code? Open in Web Editor NEW
190.0 20.0 67.0 615 KB

Generic CRUD implementation in Django

Home Page: https://django-crudbuilder.readthedocs.org/en/latest/index.html

License: Apache License 2.0

HTML 23.55% Python 64.25% JavaScript 12.20%
python django crud-generator crud-builder crud crud-maker bootstrap3 django-crudbuilder asifpy

django-crudbuilder's Introduction

Hi there 👋

I am still thinking what to write here.

django-crudbuilder's People

Contributors

asifpy avatar cezar77 avatar ebertti avatar flaiming avatar gitter-badger avatar hsum avatar marcoshemann avatar moring avatar paolodina avatar russell310 avatar superkelvint avatar tonimichel avatar wadevries avatar westonplatter avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

django-crudbuilder's Issues

custom_modelform

I need use two forms, one for add and other for update. If you can fix it. Thk

post_save signal is called 2 times

Hello, I added django-simple-history to my project and found out that every time I update my record using crudbuilder post_save signal is called 2 times in a row. As a result I get two historical records for one update. Why does crudbuilder update record two times and how can I turn it off?

Error in model field image

I am using a model with a field image
(models.py)
Cadastro
logo = models.ImageField(upload_to = gera_caminho_cad, blank=True)

in view.py
class CadastroCrud(BaseCrudBuilder):
model = Cadastro
modelform_excludes = ['logo']
...

And when i click Id in list view, to show me detail view, i get this error:

Exception Value:
The 'imagem' attribute can only be accessed from Contato instances.
Exception Location: /home/wm.0.2/lib/python3.4/site-packages/django/db/models/fields/files.py in get, line 176

Error during template rendering

In template /home/wm.0.2/des/cadastro/templates/cadastro/crud/crud_detail.html, error at line 27

Template
27 {% for field in object|get_model_fields %} <-- ERROR

New release

Hi, will there be new release version any time soon?

Custom urls routing

Hello.

I would like to have a control over routing of urls so they don't depend on names of apps and models. Is that possible ?

Multiple builders for same model

I lack the ability to create multiple crudbuilders for one model. Since URL is tied to the app name and model name, this is not currently possible.
I'm proposing adding new attribute to crudbuilder called model_url_name, which would override default model plural name, used in URL.

Example:

class TestModelCrud(BaseCrudbuilder):
    model = TestModel
    # this would give URL /<appname>/testmodel/

class TestSameModelCrud(BaseCrudbuilder):
    model = TestModel
    model_url_name = 'testmodel2'
    # this would give URL /<appname>/testmodel2/

Or it could get model URL name from crudbuilder class name, which would be maybe even simpler.

What do you think?

Custom form initial data

Is there any way how to add initial data to custom modelform? I tried to add them to kwargs in modelform __init__method, but it's not working for some reason.

allow to define more than one inline crud - more like the djando admin

Right now is possible to define one inline crud:
as docs explains:

# yourapp/crud.py
from crudbuilder.formset import BaseInlineFormset

class PersonEmploymentInlineFormset(BaseInlineFormset):
        inline_model = PersonEmployment
        parent_model = Person
        exclude = ['created_by', 'updated_by']
        #formset_class = YourBaseInlineFormset
        #child_form = ChildModelForm

class PersonCrud(BaseCrudBuilder):
        model = Person
        search_fields = ['name']
        tables2_fields = ('name', 'email')
        inlineformset = PersonEmploymentInlineFormset

What I want:

# yourapp/crud.py
from crudbuilder.formset import BaseInlineFormset

class PersonFooInlineFormset(BaseInlineFormset):
        inline_model = PersonFoo
        parent_model = Person
        exclude = ['created_by', 'updated_by']


class PersonEmploymentInlineFormset(BaseInlineFormset):
        inline_model = PersonEmployment
        parent_model = Person
        exclude = ['created_by', 'updated_by']


class PersonCrud(BaseCrudBuilder):
        model = Person
        search_fields = ['name']
        tables2_fields = ('name', 'email')
        inlineformset = [
                PersonEmploymentInlineFormset,
                PersonFooInlineFormset
        ]

inlineformset's items order should be respected when rendered

Thanks for you great app!

Unclear on TableBuilder

I'm looking to add checkboxes to my table in list.html. I saw the commented out override instructions. But I'm still a little unclear to how it ties into my ViewBuilder. Do I reference the CustomTable in a specific way in views? Thank you.

This is my tables.py:

builder = TableBuilder('sorter', 'foo', FooCrud)
CheckboxFooTable = builder.generate_table()
class CustomFooTable(CheckboxFooTable):
	selection = tables.CheckBoxColumn(accessor='pk')

	class Meta:
		model = foo
		attrs = {'id': 'foo-crud-table'}
                sequence = ('selection', 'name', 'gender')

Clone record

How to implement in Update Save as new instance button?

Extend a view

Hi Asif

I try extend the created view. ( from your example )
My app is : cadastro
MY model is : Perfil

I want put in field criador the user ( request.user) ( I know that i can use signal to this, but is only a example)
I created this view

class CadastroCrud(BaseCrudBuilder):
    model = Cadastro
    search_feilds = ['nome']    # é assim mesmo o nome
    tables2_fields = ('nome',  'sit')
    modelform_excludes = ['criador']
    login_required=True
    permission_required=False
    custom_modelform = CadastroForm

After I try extend :

from crudbuilder.views import ViewBuilder
builder = ViewBuilder('cadastro', 'Perfil', 'crud')   -> I don’t know what is the 3º parameter ( crud, crudclass, I get erro if I dont inform)
builder.generate_crud()
CadUpView = builder.classes['CadastroUpdateView']
class CustomCadUpView(CadUpView):
    def form_valid(self, form):
        print('form valid')
        form.instance.criador = self.request.user
        return super(CustomCadUpView, self).form_valid(form)

But I have no success

May you help-me with a example of extended CadastroUpdateView that send to forms aditional fields? like request.user, or request?
Regards,

post_inline_update_handler

Hi,

I am try to user a
def post_inline_create_handler(sender, **kwargs):
to include like parent.updated_by = request.user

So whem I submit a create
I take a error
django.db.utils.IntegrityError: (1048, "Column 'user_id' cannot be null")
I include a print ("tag")
but i dont see this print.

I think that create inleine dosent call this signal.
may you see this.?
Regards,

Pluralization seems broken

If I have a model named Delivery and feed it into CRUD Builder Django correctly assembles the url as:

/crud/models/deliveries/

But everything in CRUD Builder itself says:

Deliverys

Same for Box -> Boxs and so on and so forth.

If Django can get it right, why isn't this library using the same names?

DatailView show verbose name

A sugestion to beter the detail view render

In tags.py

@register.filter
def get_verbose_field_name(instance, field_name):
return instance._meta.get_field(field_name).verbose_name.title()

In object_detail.html
remove
{{field.name|undertospaced}}
add
{{object|get_verbose_field_name:field.name}}

new detail view show too verbose_name

Add Screenshots in Readme and Docs

It will be easier for developers to evaluate this project at a higher level if you attach a few screenshots to demonstrate how the generated screens look and feel like.

custom table filter

Hey guys,

I'm trying to add a browsing section that mimics the way the crudbuilder searchbar works. I have multiple inputs and I'd like to tie each input to a separate object in my database. For example, with the "days_since_last_login" search bar, you could type 33 and it will only show the results with days since last login equal to 33. I have it to where the search bar can put the results onto the page, but I can't get it to stay a part of the crudbuilder table. I'd like it to work exactly the way the default searchbar works in the main_content block. But I'm unsure how to render to the main_content block. Any help or advice would be amazing. Let me know if you'd like to see any pieces of my code and I can pin them up for you. Thank you!

Update: I'm trying to alter the search input form by customizing my list view. I'm trying to do so with the use of the custom_queryset classmethod. I'd like to add in additional request.GET commands for other input textboxes. When doing so, I get an error that my Crud class has no attribute 'request', but I've defined it as @classmethod def custom_queryset(cls, request, **kwargs): name = cls.request.GET.get('name')

Essentially, if I could go into crudbuilder/mixins.py, I'd want to change get_queryset to something along the lines of
`def get_queryset(self):

    if self.custom_queryset:
        objects = self.custom_queryset(self.request, **self.kwargs)
    else:
        objects = self.model.objects.all()
        name = self.request.GET.get('name')
        gender = self.request.GET.get('gender')
    if name:
        q_list = [
            Q(
                ('{}__icontains'.format(field), name))
            for field in self.crud.search_fields
        ]
        objects = objects.filter(reduce(operator.or_, q_list))
    if gender:
        q_list = [
            Q(
                ('{}__icontains'.format(field), gender))
            for field in self.crud.search_fields
        ]
        objects = objects.filter(reduce(operator.or_, q_list))
    return objects.order_by('-id')`

Can I see the generated views and templates?

I looked briefly at the source code.

It seems like the views and templates are generated in memory.

Using inspect in chrome there seems to be an index file. It is populated with the data itself, not variables like one would write a view themselves.

Is it possible to see the generated views and templates with variables in the templates etc? These would be like a person would write normally without the use of crudbuilder.

Migration to Django 2.0

I'm trying to use this module in Django 2.0, Python 3.6 and getting the following error:
ModuleNotFoundError: No module named 'django.core.urlresolvers'
Traceback points to following string:

from crudbuilder import urls

Django-crudbuilder version is 0.2.6 from PyPI.

UPD:
I've installed version from git and got another error:
TypeError: view must be a callable or a list/tuple in the case of include().
to code:

path('crud/', urls),

UPD2:
I've rewrite my code to old-style django urls:

url('crud/', include(urls))

and now it works fine. It's anough for me, but i think you should make your code compatible with new-style urls too.

type object 'inventoryCrud' has no attribute 'search_feilds'

pls help to check the issue below:

class inventoryInlineFormset(BaseInlineFormset):
        inline_model = OS
        parent_model = inventory
        extra = 1
        can_delete = True
        fk_name = 'inventory'
        #exclude = ['created_by', 'updated_by']
        #formset_class = YourBaseInlineFormset
        #child_form = ChildModelForm

class inventoryCrud(BaseCrudBuilder):
    model = inventory
    custom_modelform = inventoryForm
    search_fields = ['appcode','hostname','alias','env']
    tables2_fields = ('appcode','appcode_desc','hostname','alias','env','tier','hardware_platform','hardware_model')
    tables2_css_class = "table table-bordered table-condensed"
    tables2_pagination = 20  # default is 10
    #modelform_excludes = ['created_by', 'updated_by']
    login_required=False
    permission_required=False
    inlineformset = inventoryInlineFormset


class OSCrud(BaseCrudBuilder):
    model = OS
    search_fields = ['OS_name','OS_current_version','OS_patch_level','OS_EOS_status','OS_EOS_date']
    tables2_fields = ('OS_name','OS_current_version','OS_patch_level','OS_EOS_status','OS_EOS_date')
    tables2_css_class = "table table-bordered table-condensed"
    tables2_pagination = 20  # default is 10
    #modelform_excludes = ['created_by', 'updated_by']
    login_required=True
    permission_required=False

1: type object 'inventoryCrud' has no attribute 'search_feilds' when I serach

2: 'ForeignKey' object has no attribute 'get_forward_related_filter' when I click to go to detail page

3: if I have one more child model DB for inventory, how to add 2 models to inline formset

inline_model = (OS,DB) doesnot work

thanks

Pagination does't work

Hi,
I use
tables2_pagination = 10
But in list view show me 25 row.
May you check this.
Tank you

Primary Key Issues

As soon as I loaded some models into the database, the listview url wouldn't load and gave me an error about the detail view and primary keys.

My model uses

id = models.CharField(primary_key=True, max_length=255)

and the error I'm getting when viewing crud/updates/instances/ without even specifying a pk in the url (I want to see the list view not detail view!)

...
  File "/Users/aymon/Envs/dchw/lib/python2.7/site-packages/django_tables2/columns/linkcolumn.py", line 187, in render
    self.compose_url(record, bound_column),
  File "/Users/aymon/Envs/dchw/lib/python2.7/site-packages/django_tables2/columns/linkcolumn.py", line 183, in compose_url
    return reverse(viewname, **params)
  File "/Users/aymon/Envs/dchw/lib/python2.7/site-packages/django/urls/base.py", line 91, in reverse
    return force_text(iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs)))
  File "/Users/aymon/Envs/dchw/lib/python2.7/site-packages/django/urls/resolvers.py", line 497, in _reverse_with_prefix
    raise NoReverseMatch(msg)
NoReverseMatch: Reverse for 'updates-instances-detail' with arguments '(u'i-088d2ca2577027d22',)' not found. 1 pattern(s) tried: ['crud/updates/instances/(?P<pk>\\d+)/$']

property as displayable detail doesn't work

My model:

class Client(models.Model):
    ...
    def get_entity(self):
        # return some other model
    entity = property(entity)

I want entity to be rendered on the detail page, but instead I get

File "/Users/wouter/dev/envs/analyzer/lib/python2.7/site-packages/crudbuilder/templatetags/tags.py" in get_verbose_field_name
  51.     return instance._meta.get_field(field_name).verbose_name.title()

File "/Users/wouter/dev/envs/analyzer/lib/python2.7/site-packages/django/db/models/options.py" in get_field
  582.             raise FieldDoesNotExist('%s has no field named %r' % (self.object_name, field_name))

Exception Type: FieldDoesNotExist at /crud/customers/clients/5/
Exception Value: Client has no field named 'entity'

I guess this is because the get_verbose_field_name template filter does not support properties (or 'fake' fields), even though get_model_fields does.

Include erro in Django >1.10

Hi Asifpy
I detect a import error using with Django > 1.10
In view.py line 1
#from django.core.urlresolvers import reverse_lazy
from django.urls import reverse_lazy
Regards

Empty registered cruds list

I tried to resemble your example with Person and PersonCrud but I get empty registered cruds list.

Should I explicitly register a crud in some way?

Crudbuilder depends on the presence of an `id` field in the models

Currently, crudbuilder depends on the presence of an id field in each of the models. Explicitely defining one's own primary key (with primary_key=True in the field definition) wreaks havoc. Instead, the code should reference the pk field, which always represents the primary key, either as set by the user, or id by default.

The first place that needs changing is mixins.BaseListViewMixin.get_queryset (in the return statement), The way it currently stands, it will crash django when the model does not have an id field.

There are more places where the code uses id, notably in tables.TableBuilder. Here a more sensible solution might be required though. Not sure if just replacing id by pk yields the correct behaviour in all cases.

Feature request for "inline" adding/editing related objects

Hi

I found django-crudbuilder when I was looking for a generic implementation of CRUD forms.
It looks very promising and easy to understand.

The only thing I'm missing in django-crudbuilder is the possibility for "inline" editing/adding a related object (as in django admin).

On my research I found django-addanother (https://github.com/jonashaag/django-addanother) which supplies exactly this functionality in a small app.

Would it be possible to add this functionality to django-crudbuilder either by using/referencing the django-addanother app or by implementing this directly into django-crudbuilder?

Regards

Crud with proxy model issue

I'm not sure this applies to you too or if it's some kind of issue in my project. Sorry in advance in this case.

I need to associate the crud to a proxy model. This proxy model extends a model defined in another app. In this scenario I get a rather long exception running runserver, fixed adding a fallback method to get the model back from ContentType. Unfortunately I can't provide a test case, if you would to have a look at the patch anyway, please refer here:

paolodina@de8db9d

detailview_excludes not honoured when inlineformset used in BaseCrudBuilder

Issue is explained in the heading but following code is copied from crud.py to make reproduction of problem easy.

class TokenInlineFormSet(BaseInlineFormset):
    inline_model = Token
    parent_model = Publisher
    fields = ('key',)

class PublisherCrud(BaseCrudBuilder):
    model = Publisher
    search_fields = ('name',)
    custom_postfix_url = 'publisher'
    tables2_fields = ('name', 'website')
    inlineformset = TokenInlineFormSet
    detailview_excludes = ['id', 'password', 'last_login', 'first_name', 'last_name',
                           'email', 'is_staff', 'username', 'is_active', 'user_ptr',
                           'is_superuser']
    createupdate_forms = {
        'create': PublisherCreateForm,
        'update': PublisherUpdateForm
    }

Releasing 2.0 compatible version?

Hello! loving CRUDBuilder, but (for various reasons) I'm on Django 2.0 -- just wondering if there's an ETA on releasing a 2.0-compatible version? I implemented the changes from the commit by hand and they work great. Thanks!

get request.user in ModelForm

Hi asifpy,

Could you please help to advise how can I get request.user in forms.py and crud.py, in normal view.py I can use below to pass.

form = inventoryForm(user=request.user)

in forms.py
class inventoryForm(forms.ModelForm):
class Meta:
model = inventory
fields = 'all'

def __init__(self, *args, **kwargs):
    user = kwargs.pop('user',None)
    super(inventoryForm, self).__init__(*args, **kwargs) 
    self.fields['appcode'].queryset = Applicationin.objects.filter(code__in=getAppcodeList(user))

in crud.py

class inventoryCrud(BaseCrudBuilder):
model = inventory
custom_modelform = inventoryForm
search_fields = ['appcode__code','appcode_desc','hostname','alias','env','tier']
...
login_required=True
permission_required=False
inlineformset = inventoryInlineFormset

Dont create views when define view in other app

I have this same structure
cadastro/models.py
/forms.py
/views.py (here i define some view (BaseCrudBuilder): and work well
/urls.py ( here is url(r'^', include('crudbuilder.urls')),)
but if a create a view (BaseCrudBuilder): in other app like

perfil/view.py

class ProxyCrud(BaseCrudBuilder):
model = Proxy
search_feilds = ['nome']
tables2_fields = ('nome')

It dont create urls.. like /perfil/proxies...

If i create a same class ProxyCrud(BaseCrudBuilder): in cadastro.view show me a error:

crudbuilder.exceptions.AlreadyRegistered: Key 'zabbix-drule' has already been registered.

Signals

Hi,
I am using signals to do a process if is create and other process if is update.
but when o update a record, the crud run post_update_signal AND post_create_signal too.
Inside of singn function how i know if is create or update?

Regards

Python 3.2 coverage has a syntax error

https://travis-ci.org/asifpy/django-crudbuilder/jobs/107942259

$ coverage run --source=crudbuilder runtests.py
Traceback (most recent call last):
  File "/home/travis/virtualenv/python3.2.5/bin/coverage", line 9, in <module>
    load_entry_point('coverage==4.0', 'console_scripts', 'coverage')()
  File "/home/travis/virtualenv/python3.2.5/lib/python3.2/site-packages/pkg_resources/__init__.py", line 519, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/home/travis/virtualenv/python3.2.5/lib/python3.2/site-packages/pkg_resources/__init__.py", line 2630, in load_entry_point
    return ep.load()
  File "/home/travis/virtualenv/python3.2.5/lib/python3.2/site-packages/pkg_resources/__init__.py", line 2310, in load
    return self.resolve()
  File "/home/travis/virtualenv/python3.2.5/lib/python3.2/site-packages/pkg_resources/__init__.py", line 2316, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/home/travis/virtualenv/python3.2.5/lib/python3.2/site-packages/coverage/__init__.py", line 13, in <module>
    from coverage.control import Coverage, process_startup
  File "/home/travis/virtualenv/python3.2.5/lib/python3.2/site-packages/coverage/control.py", line 14, in <module>
    from coverage.annotate import AnnotateReporter
  File "/home/travis/virtualenv/python3.2.5/lib/python3.2/site-packages/coverage/annotate.py", line 81
    dest.write(u'  ')
                   ^
SyntaxError: invalid syntax

https://pypi.python.org/pypi/coverage/4.0 omits support for 3.0-3.2.

So either travispy drops support for Python 3.2, or uses coverage 3.7.1 on Python 3.2 ( https://pypi.python.org/pypi/coverage/3.7.1 ).

LOGIN_REQUIRED_FOR_CRUD not honored for registered cruds page

When setting LOGIN_REQUIRED_FOR_CRUD = True in settings.py, the models' cruds are correctly blocked when not logged in, but it is still possible to see the list of registered cruds at the myapp.com/crud/ url. Is there a config flag to make this view also hidden when not logged in?

Erro in work with models managed=False

Hi Asif,
I got a error when I want create a crud with a table with managed = False, and manually set like app_label = 'portal_db', in this case, show this error: ( if possible, help me to fix this)

File "/home/devteam/.pyenv/versions/mh-lab2/lib/python3.5/site-packages/crudbuilder/abstract.py", line 52, in get_model_class
c = ContentType.objects.get(app_label=self.app, model=self.model)
File "/home/devteam/.pyenv/versions/mh-lab2/lib/python3.5/site-packages/django/db/models/manager.py", line 82, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/home/devteam/.pyenv/versions/mh-lab2/lib/python3.5/site-packages/django/db/models/query.py", line 401, in get
self.model._meta.object_name
django.contrib.contenttypes.models.DoesNotExist: ContentType matching query does not exist.

During handling of the above exception, another exception occurred:

Models should have a render name attribute [Enhancement]

I have had the opportunity to use this wonderful library. I think that the models should a have field which should contain their "render name". Consider a model named FooBar, currently that model's name will be rendered as Foobar as per list.html. I suggest that we add following inside CrudBuilderMixin class

if hasattr(model , 'render_name'):
  context['model_render_name'] = getattr(model , 'render_name')
else:
  context['model_render_name'] = model.__name__.lower()
  # or some other fallback field or value we may like

We can just now call model_render_name inside our template to make our life easy and UI/UX meaningful. Let me know if I am thinking or even doing it wrong way.

Error in builder = ViewBuilder

Now , in this version when I run:

from crudbuilder.views import ViewBuilder
builder = ViewBuilder('cadastro', 'cadastro', 'CadastroCrud')
builder.generate_crud()
I take this error:
File "/home/wm.0.2/lib/python3.4/site-packages/crudbuilder/abstract.py", line 78, in get_inlineformset
if self.crud.inlineformset:
AttributeError: 'str' object has no attribute 'inlineformset'

In CadastroCrud there are

inlineformset = None

I try but I dosent find a error.

Regards,

Erro when load model of other app

I have this structure
cadastro/models.py
/forms.py
/views.py
/urls.py
perfil/models.py

in cadastro/views.py

from perfil.models import proxy ****>> OTHER APP
....
class ProxyCrud(BaseCrudBuilder):
model = Proxy
search_feilds = ['nome']
tables2_fields = ('nome')

Show this error:

File "/home/wm.0.2/lib/python3.4/site-packages/crudbuilder/urls.py", line 20, in
pluralized = helpers.plural(model)
File "/home/wm.0.2/lib/python3.4/site-packages/crudbuilder/helpers.py", line 67, in plural
if (text[-2:-1] in vowels) or (text[0] in string.uppercase):
AttributeError: 'module' object has no attribute 'uppercase'

The template tag `get_verbose_field_name` should not apply title case

The get_verbose_field_name tag title-cases its output. This is not always desirable. For instance, if the field is labelled by an acronym, like ISBN or EAN-13, then the title cased version reads Isbn and Ean-13.

I suggest that get_verbose_field_name does only return the actual field name, as suggested by its name. Then, if required, the templates should take care of piping the output to either title or capfirst.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.