Keyword arguments (or named arguments) are values that, when passed into a function, are identifiable by specific parameter names. A keyword argument is preceded by a parameter and the assignment operator, = . Keyword arguments can be likened to dictionaries in that they map a value to a keyword.
A decorator is a design pattern in Python that allows a user to add new functionality to an existing object without modifying its structure. Decorators are usually called before the definition of a function you want to decorate.
Flask is a micro web framework written in Python. It is classified as a microframework because it does not require particular tools or libraries. It has no database abstraction layer, form validation, or any other components where pre-existing third-party libraries provide common functions.
install flask module
python -m pip install Flask
hello world
from flask import Flask, jsonify, request, render_template
app = Flask(__name__)
#YOUR FUNCTIONS HERE
if __name__ == "__main__":
app.run(debug=True);
#app.run(host="0.0.0.0", port=int("1234"), debug=True)
render html template [NOTE: MAKE SURE TO KEEP ALL TEMPLATE FILES IN templates DIRECTORY]
@app.route('/')
def index():
#return "Hello World";
data = {'company_name': "TCET"}
return render_template('hello_world.html', data = data)
templates/hello_world.html
<h1>Hello World</h1>
<h3>Welcome to {{data['company_name']}}</h3>
from flask import Flask, jsonify, request
from flask_cors import CORS
import pymysql
app = Flask(__name__)
cors = CORS(app)
@app.route('/users', methods=['GET'])
def get_users():
# To connect MySQL database
conn = pymysql.connect(host='localhost', user='root', password = "", db='databasename')
cur = conn.cursor()
cur.execute("select * from users LIMIT 10")
output = cur.fetchall()
print(type(output)); #this will print tuple
for rec in output:
print(rec);
# To close the connection
conn.close()
return jsonify(output);
from django.db import models
class Employee(models.Model):
post = models.CharField(max_length = 100)
name = models.CharField(max_length = 100)
salary = models.IntegerField()
is_active = models.BooleanField(default=False)
added_date = models.DateField(auto_created=True)
updated_date = models.DateField(auto_now=True)
def __str___(self):
return self.title
to make and apply the migrations run
./manage.py makemigrations
./manage.py migrate
employee/serializers.py
from rest_framework import serializers
from employee.models import Employee
class EmployeeSerializer(serializers.ModelSerializer):
class Meta:
model = Employee
fields = "__all__"
employee/views.py
from django.shortcuts import render
from rest_framework.generics import ListAPIView
from rest_framework.generics import CreateAPIView
from rest_framework.generics import DestroyAPIView
from rest_framework.generics import UpdateAPIView
from employee.serializers import EmployeeSerializer
from employee.models import Employee
class ListEmpAPIView(ListAPIView):
queryset = Employee.objects.all()
serializer_class = EmployeeSerializer
class CreateEmpAPIView(CreateAPIView):
queryset = Employee.objects.all()
serializer_class = EmployeeSerializer
class UpdateEmpAPIView(UpdateAPIView):
queryset = Employee.objects.all()
serializer_class = EmployeeSerializer
class DeleteEmpAPIView(DestroyAPIView):
queryset = Employee.objects.all()
serializer_class = EmployeeSerializer
employee/urls.py
from django.urls import path
from employee import views
urlpatterns = [
path("",views.ListEmpAPIView.as_view(),name="employee_list"),
path("create/", views.CreateEmpAPIView.as_view(),name="employee_create"),
path("update/<int:pk>/",views.UpdateEmpAPIView.as_view(),name="update_employee"),
path("delete/<int:pk>/",views.DeleteEmpAPIView.as_view(),name="delete_employee")
]
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'DB_NAME',
'USER': 'DB_USER',
'PASSWORD': 'DB_PASSWORD',
'HOST': 'localhost', # Or an IP Address that your DB is hosted on
'PORT': '3306',
}
}
open db shell with default connection
python manage.py dbshell
MySql Database Connection Troubleshoot in Windows OS Download whl package which is compatible with your python version https://www.lfd.uci.edu/~gohlke/pythonlibs/ Find: mysqlclient
To check whether python is 32 or 64 bit just run following command
queryset = ModelName.objects.filter(column=value)
queryset = ModelName.objects.get(column=value) #this will give you single record
queryset = ModelName.objects.filter(column__iexact=value, column2__exact=value2)
queryset = ModelName.objects.filter(col__subcol=value) #for relationship
Here are simple steps to create hello world web application in python using django framework
Step 1: Install virtual environment and create virtual environment for your project
pipinstallvirtualenvwrapper-win
mkvirtualenvmyproject
pip install virtualenv
virtualenv name_to_your_env
name_to_your_env\Scripts\activate
After activation
$ django-admin.py startproject HelloWorld $ cd HelloWorld
$ ls HelloWorld manage.py
$ python manage.py runserver
Validating models...
0 errors found ...
Django version 1.6.5, using settings 'HelloWorld.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
$ django-admin startapp HelloWorldApp
$ ls
HelloWorld HelloWorldApp manage.py